From 3229bc7f1b7b7c0d6c771625e79493f6fab83629 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 12 May 2011 09:33:59 +0100 Subject: [PATCH] x86/hvm: Use UNLIKELY_{START,END} in a few suitable places in asm. Signed-off-by: Keir Fraser --- xen/arch/x86/hvm/svm/entry.S | 14 +++++--------- xen/arch/x86/hvm/vmx/entry.S | 4 ++-- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/xen/arch/x86/hvm/svm/entry.S b/xen/arch/x86/hvm/svm/entry.S index 8ccb2e5dbb..7458664fd0 100644 --- a/xen/arch/x86/hvm/svm/entry.S +++ b/xen/arch/x86/hvm/svm/entry.S @@ -66,20 +66,20 @@ ENTRY(svm_asm_do_resume) jnz .Lsvm_process_softirqs testb $0, VCPU_nsvm_hap_enabled(r(bx)) - jz .Lsvm_asid_handle - +UNLIKELY_START(nz, nsvm_hap) mov VCPU_nhvm_p2m(r(bx)),r(ax) test r(ax),r(ax) sete %al andb VCPU_nhvm_guestmode(r(bx)),%al jnz .Lsvm_nsvm_no_p2m +UNLIKELY_END(nsvm_hap) -.Lsvm_asid_handle: call svm_asid_handle_vmrun cmpb $0,addr_of(tb_init_done) - jnz .Lsvm_trace -.Lsvm_trace_done: +UNLIKELY_START(nz, svm_trace) + call svm_trace_vmentry +UNLIKELY_END(svm_trace) mov VCPU_svm_vmcb(r(bx)),r(cx) mov UREGS_rax(r(sp)),r(ax) @@ -181,10 +181,6 @@ svm_stgi_label: call do_softirq jmp svm_asm_do_resume -.Lsvm_trace: - call svm_trace_vmentry - jmp .Lsvm_trace_done - .Lsvm_nsvm_no_p2m: /* Someone shot down our nested p2m table; go round again * and nsvm_vcpu_switch() will fix it for us. */ diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S index fd7d6a6c90..aec05b28e5 100644 --- a/xen/arch/x86/hvm/vmx/entry.S +++ b/xen/arch/x86/hvm/vmx/entry.S @@ -132,12 +132,12 @@ vmx_asm_do_vmentry: testb $0xff,VCPU_vmx_emulate(r(bx)) jnz .Lvmx_goto_emulator testb $0xff,VCPU_vmx_realmode(r(bx)) - jz .Lvmx_not_realmode +UNLIKELY_START(nz, realmode) cmpw $0,VCPU_vm86_seg_mask(r(bx)) jnz .Lvmx_goto_emulator call_with_regs(vmx_enter_realmode) +UNLIKELY_END(realmode) -.Lvmx_not_realmode: call vmx_vmenter_helper mov VCPU_hvm_guest_cr2(r(bx)),r(ax) mov r(ax),%cr2 -- 2.30.2